草庐IT

c++ - 使用 boost::lambda::bind 有什么问题?

全部标签

ruby-on-rails - "save(false)"是做什么的?

在下面的代码中,save(false)做了什么?defcreate_reset_code!@reset=trueself.attributes={:reset_code=>Digest::SHA1.hexdigest(Time.now.to_s.split(//).sort_by{rand}.join)}save(false)end如果是为了更新凭据,那为什么要包含false? 最佳答案 save(false)绕过对正在保存的模型对象的验证。 关于ruby-on-rails-"save(

ruby - 什么是枚举器对象? (使用 String#gsub 创建)

我有一个属性数组如下,attributes=["test,2011","photo","198.1x198.1cm","Photo:ManuPKFullScreen"]当我这样做时,artist=attributes[-1].gsub("Photo:")partist我在终端中得到以下输出#想知道为什么我得到一个枚举器对象作为输出?提前致谢。编辑:请注意,我做的不是attributes[-1].gsub("Photo:",""),而是attributes[-1].gsub("Photo:")所以想知道为什么枚举器对象返回到这里(我期待一条错误消息)以及发生了什么。?ruby-1.9.2

ruby-on-rails - 使用 has_many :through and build

我有三个模型,都用于has_many:through关系。它们看起来像这样:classCompany这加载很好,并且连接是为查询而构建的。但是,每当我做类似的事情时@company=Company.last@user=@company.users.build(params[:user])@user.save#=>true@company.save#=>trueUser记录和CompanyUser记录被创建,但是company_idCompanyUser中的字段记录设置为NULLINSERTINTO`companies_users`(`company_id`,`created_at`,`

ruby-on-rails - Rails 4 中关于匹配关键字在 Rails 3 中工作的路由问题

在rails3中,匹配关键字有效,但在rails4中,匹配关键字不适用于路由我如何在rails4中定义这些路由此代码段在rails3中运行match'admin',:to=>'access#menu'match'show/:id',:to=>'public#show'match':controller(/:action(/:id(.:format)))'我需要rails4的通用公式,就像在rails3中一样match':controller(/:action(/:id(.:format)))' 最佳答案 Rails4删除了通用匹配,

ruby-on-rails - 使用从ruby中的方法返回的散列在一行中分配多个变量

我有一个返回散列映射{:name=>"Test",:desc=>"TestDescription}的方法。它将始终返回:name和:description。如何用返回的哈希分配2个变量。我可以这样做,但它会调用该方法两次:@name,@desc=get_name_desc_map[:name],get_name_desc_map[:desc]我只想调用一次该方法。 最佳答案 使用Ruby的并行赋值非常简单:@name,@desc=get_name_desc_map.values另一种方法是(如果您不知道原始散列中键的顺序):@nam

ruby - Ruby 通用定界输入的优缺点是什么? (百分比语法)

我不明白为什么有些人在ruby​​中大量使用百分比语法。例如,我正在阅读rubypluginguide它使用如下代码:%w{modelscontrollers}.eachdo|dir|path=File.join(File.dirname(__FILE__),'app',dir)$LOAD_PATH每次看到这样的东西,我都得去查找百分比语法引用,因为我不记得%w是什么意思。这种语法真的比["models","controllers"].each...更可取吗?我认为在后一种情况下,我定义了一个字符串数组更清楚,但在前一种情况下——尤其是对于学习ruby​​的人来说——似乎不太清楚,至少

ruby - 在 Ruby 中,为什么在使用 "do"和 "end"时不能将方法调用视为一个单元?

以下问题与问题“RubyPrintInjectDoSyntax”有关。我的问题是,我们能否坚持使用do和end并使其与puts或p一起使用?这个有效:a=[1,2,3,4]b=a.injectdo|sum,x|sum+xendputsb#printsout10所以,这样说对吗,inject是Array对象的一个​​实例方法,这个实例方法接受一段代码,然后返回一个数字。如果是这样,那么它应该与调用函数或方法并取回返回值没有区别:b=foo(3)putsb或b=circle.getRadius()putsb以上两种情况,我们可以直接说putsfoo(3)putscircle.getRadi

ruby - 使用 RSpec 测试警告

是否可以使用RSpec在Ruby中测试警告?像这样:classMyClassdefinitializewarn"Somethingiswrong"endendit"shouldwarn"doMyClass.new.shouldwarn("Somethingiswrong")end 最佳答案 warn在Kernel中定义,它包含在每个对象中。如果您在初始化期间没有发出警告,您可以指定这样的警告:obj=SomeClass.newobj.should_receive(:warn).with("SomeMessage")obj.metho

ruby - 为什么是 RVM 全系统?

我已经设置了一个Rails生产环境:*名为deploy的用户下的Rails应用程序。*部署用户只是一个没有sudo权限的普通用户。*部署用户使用自己的沙盒rvm(没有系统范围),所以任何ruby​​都只在部署用户下。*运行apache的用户无权访问ruby​​环境,也不需要访问权限,因为apache不需要ruby​​。*deploy用户运行一个unicorn集群。这个rvm非系统范围的配置对我来说非常有用。我看到的优势是:*我不需要在每次安装gem时都使用sudo。*Ruby是沙盒化的,只对deploy用户可用,通过最小化提高了系统的安全性。Apache不关心ruby​​,所以它无法访

ruby - 在嵌套对象中使用自定义 to_json 方法

我有一个使用Ruby标准库中的Set类的数据结构。我希望能够将我的数据结构序列化为JSON字符串。默认情况下,Set序列化为数组:>>s=Set.new[1,2,3]>>s.to_json=>"[1,2,3]"这很好,直到您尝试反序列化它。所以我定义了一个自定义的to_json方法:classSetdefto_json(*a){"json_class"=>self.class.name,"data"=>{"elements"=>self.to_a}}.to_json(*a)enddefself.json_create(o)newo["data"]["elements"]endend哪个